package com.teoresi.sb.db.dao.impl;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import com.teoresi.sb.bean.GenericBean;
import com.teoresi.sb.bean.domain.AnamnesiClienteBean;
import com.teoresi.sb.bean.domain.ClienteBean;
import com.teoresi.sb.bean.domain.TrattamentoBean;
import com.teoresi.sb.bean.domain.TrattamentoClienteBean;
import com.teoresi.sb.bean.domain.ValoreAnamnesiBean;

public class ClienteDAO extends BasicDAOImpl<GenericBean> {

	public ClienteDAO() {
		setPrefix("Cliente");
	}

	@Override
	public List<GenericBean> selectAll() {
		List<GenericBean> list = new ArrayList<GenericBean>();
		final ClienteBean cliente1 = new ClienteBean(0, "Davide", "Aresta", "Via Ugo La Malfa,20", "Bitonto", "Bari", Calendar.getInstance().getTime(), "3334928885", "0", "davide.aresta@teoresigroup.com", "M", "Specialist consultant", "Genio :D", "primo :D");
		final ClienteBean cliente2 = new ClienteBean(1, "Antonio", "Colucci", "Via Venaria 76/a", "Caselle Torinese", "Torino", Calendar.getInstance().getTime(), "123456789", "987456213", "antonio.colucci@teoresigroup.com", "M", "Capo consultant", "FuoriClasse", "Annousc"); 
		List<TrattamentoClienteBean> listaTrattamentiCliente1 = new ArrayList<TrattamentoClienteBean>();
		
		TrattamentoClienteBean trattamento1 = new TrattamentoClienteBean();
		trattamento1.setId(0);
		trattamento1.setDataTrattamento(Calendar.getInstance().getTime());
		trattamento1.setOsservazioni("Mah...");
		trattamento1.setValoriImpostati("Morte Sicura");
		TrattamentoBean trattamento = new TrattamentoBean();
		trattamento.setDescrizione("LipoSuzione");
		trattamento1.setTrattamento(trattamento);
		
		TrattamentoClienteBean trattamento2 = new TrattamentoClienteBean();
		trattamento2.setId(1);
		trattamento2.setDataTrattamento(Calendar.getInstance().getTime());
		trattamento2.setOsservazioni("boooooooo.");
		trattamento2.setValoriImpostati("OINCO INCOUINCOCI");
		trattamento = new TrattamentoBean();
		trattamento.setDescrizione("Ceretta");
		trattamento2.setTrattamento(trattamento);
		
		
		
		listaTrattamentiCliente1.add(trattamento1);
		listaTrattamentiCliente1.add(trattamento2);
		cliente1.setListaTrattamenti(listaTrattamentiCliente1);
		cliente2.setListaTrattamenti(listaTrattamentiCliente1);
		
		List<AnamnesiClienteBean> listaAnamnesiCliente = new ArrayList<AnamnesiClienteBean>();
		AnamnesiClienteBean anamnesi1 = new AnamnesiClienteBean();
		anamnesi1.setDataFineValidita(Calendar.getInstance().getTime());
		anamnesi1.setId(0);
		anamnesi1.setValoreAnamnesi(new ValoreAnamnesiBean("Pelato","A","B"));
		anamnesi1.setValoreUtente("Barbatrucco");
		
		AnamnesiClienteBean anamnesi2 = new AnamnesiClienteBean();
		anamnesi2.setDataFineValidita(Calendar.getInstance().getTime());
		anamnesi2.setId(1);
		anamnesi2.setValoreAnamnesi(new ValoreAnamnesiBean("Biririri","A","B"));
		anamnesi2.setValoreUtente("CUCUCUCU");
		
		listaAnamnesiCliente.add(anamnesi1);
		listaAnamnesiCliente.add(anamnesi2);
		cliente1.setListaAnamnesi(listaAnamnesiCliente);
		cliente2.setListaAnamnesi(listaAnamnesiCliente);
		
		list.add(cliente1);
		list.add(cliente2);
		return list;
	}

	// Metodi ausiliari

	public ClienteBean selectByNomeCognome(ClienteBean cliente) {
		ClienteBean clienteResult = null;
		openSession();
		try {
			clienteResult = session.selectOne(getPrefix() + ".selectByCognomeNome", cliente);
		} finally {
			closeSession();
		}

		return clienteResult;
	}

}
